package beans;

import daos.CampeonatoDAO;
import daos.TimeDAO;
import entitys.Campeonato;
import entitys.Time;
import java.util.List;
import java.util.Locale;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import org.apache.tomcat.util.http.HttpMessages;

/**
 *
 * @author Amauri
 */
@ManagedBean
public class CampeonatoTimesBean {
    
    private TimeDAO time_dao;
    private CampeonatoDAO camp_dao;
    private Long codigoCamp;
    private List<Time> times_selecionados;
    
    public CampeonatoTimesBean(){
        this.setTime_dao(new TimeDAO());
        this.setCamp_dao(new CampeonatoDAO());
    }
    
    public void mensagem(String msg){
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(msg));
    }
    
    public String salvar(){
        
        if (this.getTimes_selecionados().size() != 8){
            this.mensagem("O campeonato deve conter 8 times!");
            return null;
        }
        
        Campeonato campPersistir = this.getCamp_dao().findById(this.getCodigoCamp());
        campPersistir.setTimes(this.getTimes_selecionados());
        this.getCamp_dao().persistir(campPersistir);
        
        return "campeonatos_listar";
    }
    
    public String GerenciarTimes(Campeonato campeonato){
        this.setCodigoCamp(campeonato.getID());
        return "campeonatos_times";
    }
    
    public List<Time> times_disponiveis(){
        return this.getTime_dao().listAll();
    }
    
    public TimeDAO getTime_dao() {
        return time_dao;
    }

    public void setTime_dao(TimeDAO time_dao) {
        this.time_dao = time_dao;
    }

    public List<Time> getTimes_selecionados() {
        return times_selecionados;
    }

    public void setTimes_selecionados(List<Time> times_selecionados) {
        this.times_selecionados = times_selecionados;
    }

    public CampeonatoDAO getCamp_dao() {
        return camp_dao;
    }

    public void setCamp_dao(CampeonatoDAO camp_dao) {
        this.camp_dao = camp_dao;
    }

    public Long getCodigoCamp() {
        return codigoCamp;
    }

    public void setCodigoCamp(Long codigoCamp) {
        this.codigoCamp = codigoCamp;
    }
    
}
